<?php

/**
 * @package     JohnCMS
 * @link        http://johncms.com
 * @copyright   Copyright (C) 2008-2011 JohnCMS Community
 * @license     LICENSE.txt (see attached file)
 * @version     VERSION.txt (see attached file)
 * @author      http://johncms.com/about
 */

define('_IN_JOHNCMS', 1);
$headmod = 'guestbook';
require('../incfiles/core.php');
if (isset($_SESSION['ref']))
    unset($_SESSION['ref']);
    
/*
-----------------------------------------------------------------
 Initialization (блок объявления и иниалициализации переменных)
-----------------------------------------------------------------
*/

function display_date($var)
    {
        $shift = (functions::$system_set['timeshift'] + functions::$user_set['timeshift']) * 3600;
        if (date('Y', $var) == date('Y', time())) {
            if (date('z', $var + $shift) == date('z', time() + $shift))
                return functions::$lng['today'] . ', ' . date("H:i", $var + $shift);
            if (date('z', $var + $shift) == date('z', time() + $shift) - 1)
                return functions::$lng['yesterday'] . ', ' . date("H:i", $var + $shift);
        }
        return date("d.m.Y", $var + $shift);
    }

$max_symbols = $rights < 1 ? 500 : 2500;           //Задаем максимальное кол-во символов
$name_table = '`guest`';                           //Задаем название таблицы

/*
-----------------------------------------------------------------
 Вывод страницы
-----------------------------------------------------------------
*/


?><div style="margin:0;padding:1px;font-family:tahoma;font-size: 8pt;"><?

// Если гостевая закрыта, выводим сообщение и закрываем доступ (кроме Админов)
if (!$set['mod_guest'] && $rights < 7) {
    echo '<div class="rmenu">' . $lng['guestbook_closed'] . '</div></div>';
    exit;
}

/*
------------------------------------------
Написание и получение нового комментария
------------------------------------------
*/
if ($act=="say") {
        /*
        -----------------------------------------------------------------
        Добавление нового поста
        -----------------------------------------------------------------
        */
        $admset = 0; // Вставляем в Гастивуху (0)
        // Принимаем и обрабатываем данные
        $name = isset($_POST['name']) ? mb_substr(trim($_POST['name']), 0, 20) : '';
        $msg = isset($_POST['msg']) ? mb_substr(trim($_POST['msg']), 0, $max_symbols) : '';
        $trans = isset($_POST['msgtrans']) ? 1 : 0;
        $code = isset($_POST['code']) ? trim($_POST['code']) : '';
        $from = $user_id ? $login : mysql_real_escape_string($name);
        
        // Проверяем на ошибки
        $error = array();
        $flood = false;
        if (!$user_id && empty($_POST['name'])) $error[] = $lng['error_empty_name'];
        if (empty($_POST['msg'])) $error[] = $lng['error_empty_message'];
        if ($ban['1'] || $ban['13']) $error[] = $lng['access_forbidden'];
        
		// CAPTCHA для гостей
        if (!$user_id && (empty($code) || mb_strlen($code) < 4 || $code != $_SESSION['code'])) $error[] = $lng['error_wrong_captcha'];
        unset($_SESSION['code']);
        if ($user_id) {
            // Антифлуд для зарегистрированных пользователей
            $flood = functions::antiflood();
        } else {
            // Антифлуд для гостей
            $req = mysql_query("SELECT `time` FROM " . $name_table . " WHERE `ip` = '$ip' AND `browser` = '" . mysql_real_escape_string($agn) . "' AND `time` > '" . (time() - 60) . "'");
            if (mysql_num_rows($req)) {
                $res = mysql_fetch_assoc($req);
                $flood = time() - $res['time'];
            }
        }
        if ($flood)
            $error = $lng['error_flood'] . ' ' . $flood . '&#160;' . $lng['seconds'];
        if (!$error) {
            // Проверка на одинаковые сообщения
            $req = mysql_query("SELECT * FROM " . $name_table . " WHERE `user_id` = '$user_id' ORDER BY `time` DESC");
            $res = mysql_fetch_array($req);
            if ($res['text'] == $msg) {
                header("location: mchat.php");
                exit;
            }
        }
        if (!$error) {
            // Вставляем сообщение в базу
            mysql_query("INSERT INTO " . $name_table . " SET
                `adm` = '$admset',
                `time` = '" . time() . "',
                `user_id` = '$user_id',
                `name` = '$from',
                `text` = '" . mysql_real_escape_string($msg) . "',
                `ip` = '" . core::$ip . "',
                `browser` = '" . mysql_real_escape_string($agn) . "'
            ");
            // Фиксируем время последнего поста (антиспам)
            if ($user_id) {
                $postguest = $datauser['postguest'] + 1;
                mysql_query("UPDATE `users` SET `postguest` = '$postguest', `lastpost` = '" . time() . "' WHERE `id` = '$user_id'");
            }
            header('location: mchat.php');
        }
    }

{
        /*
        -----------------------------------------------------------------
        Отображаем Гостевую для чата
        -----------------------------------------------------------------
        */
		
		//Если гостевая закрыта
        if (!$set['mod_guest'])
            echo '<div class="rmenu">' . $lng['guestbook_closed'] . '</div>';
		
		
		//Читаем данные из базы
        $req = mysql_query("SELECT COUNT(*) FROM " . $name_table . " WHERE `adm`='0'");
		//Выбираем результат
        $total = mysql_result(mysql_query("SELECT COUNT(*) FROM " . $name_table . " WHERE `adm`='" . (0) . "'"), 0);
        
		//Выводим стиль сообщений
		//echo '<style>body, div, td, table {}</style>';
		
		//Если гостевая не пуста
        if ($total) {
                //Запрос для обычной Гостевой
                $req = mysql_query("SELECT " . $name_table . ".*, " . $name_table . ".`id` AS `gid`, `users`.`rights`, `users`.`lastdate`, `users`.`sex`, `users`.`status`, `users`.`datereg`, `users`.`id`
                FROM " . $name_table . " LEFT JOIN `users` ON " . $name_table . ".`user_id` = `users`.`id`
                WHERE " . $name_table . ".`adm`='0' ORDER BY `time` DESC LIMIT $start, $kmess");
			
            $i = 0;
            while (($res = mysql_fetch_assoc($req)) !== false) {
                $text = '';
                echo $i % 2 ? '<div class="list2" style="margin: 0px 0px 3px; padding: 1px;">' : '<div class="list1" style="margin: 0px 0px 3px; padding: 1px;">';
                
				//Запрос по гостям
				if (empty($res['id'])) {
                    $req_g = mysql_query("SELECT `lastdate` FROM `cms_guests` WHERE `session_id` = '" . md5($res['ip'] . $res['browser']) . "' LIMIT 1");
                    $res_g = mysql_fetch_assoc($req_g);
                    $res['lastdate'] = $res_g['lastdate'];
                }
				
				//Вывод поста пользователя:
				//Время создания поста
                //$text = ' <span class="gray">(' . functions::display_date($res['time']) . ')</span>';
                
				//Для зарегистрированных показываем ссылки и смайлы
				if ($res['user_id']) {
                    $post = functions::checkout($res['text'], 1, 1);
                    if ($set_user['smileys'])
                        $post = functions::smileys($post, $res['rights'] >= 1 ? 1 : 0);
                } else {
                    //Для гостей обрабатываем имя и фильтруем ссылки
                    $res['name'] = functions::checkout($res['name']);
                    $post = functions::antilink(functions::checkout($res['text'], 0, 2));
                }
				
				//Если пост редактировался, показываем кем и когда
                /*if ($res['edit_count']) {
                    $post .= '<br /><span class="gray"><small>Изм. <b>' . $res['edit_who'] . '</b> (' . functions::display_date($res['edit_time']) . ') <b>[' . $res['edit_count'] . ']</b></small></span>';
                }*/
				
				//Ответ Администрации
                if (!empty($res['otvet'])) {
                    $otvet = functions::checkout($res['otvet'], 1, 1);
                    if ($set_user['smileys'])
                        $otvet = functions::smileys($otvet, 1);
                    $post .= '<div class="reply"><b>' . $res['admin'] . '</b>:<br/>' . $otvet . '</div>';
                }
						
				$arg = '<table width="100%"><tbody><tr><td>' . 
				   '<a href="' . functions::$system_set['homeurl'] . '/users/profile.php?user=' . $res['id'] . '" target="_blank"><b><img src="http://jmods.ru/guestbook/profile.png" align="absmiddle" width="13" border="0" /></b></a> ' .
				   //<a href="javascript:void('Apply to')" onclick="parent.window.document.getElementById('mchatMsgF').focus();parent.window.document.getElementById('mchatMsgF').value+='[b]Tommy_M[/b], ';return false;">
				   '<b>' . $res['name'] . '</b>' .
                   //</a>
                   '</td><td align="right"><span style="font-size:7pt">' . display_date($res['time']) . '</span></td></tr></tbody></table>' . 
				   '<div style="text-align:left;">' . $post . '</div>';
			
				echo $arg;
                echo '</div>';
								
                ++$i;
            }
        } else {
			//Пишем, что гостевая пуста
            echo '<div class="menu">' . $lng['guestbook_empty'] . '</div>';
        }  
	}
echo '</div>';
?>